/**
 * @file   attribute.h
 * @author wolfhead <wolfhead@wolfhead-laptop>
 * @date   Fri Oct 21 09:43:55 2011
 * 
 * @brief  
 * 
 * 
 */
#ifndef PROTOPLASM_ATTRIBUTE_H
#define PROTOPLASM_ATTRIBUTE_H

#include "config.h"

namespace PP
{

class Parser;
class ParserFactory;

class Attribute
{
public:
    Attribute(const AttributeConfig& config);

    ~Attribute();

    const AttributeConfig& GetConfig() const;

    const std::string& GetName() const;

    std::string ToString() const;

    int Initialize(ParserFactory * pParserFactory);

    Parser * GetParser() const;

protected:

    Parser * pParser_;

    AttributeConfig config_;
};

}

#endif
